package com.taijihuabao.modules.mapper;

import com.taijihuabao.modules.entity.RoleEntity;
import com.taijihuabao.modules.model.role.vo.RoleInfoVO;
import com.taijihuabao.modules.model.role.vo.RoleMenuInfoVO;

import java.util.List;

/**
 * 角色管理
 *
 * @author changhui.tu
 */
public interface RoleMapper {

    /**
     * 获取角色列表(带分页)
     *
     * @param roleEntity
     * @return
     */
    List<RoleEntity> selectAllRole(RoleEntity roleEntity);

    /**
     * 获取所有角色
     *
     * @return
     */
    List<RoleEntity> selectRoles();

    /**
     * 获取默认角色
     *
     * @param code
     * @return
     */
    RoleEntity selectRoleCode(String code);

    /**
     * 信息
     *
     * @param id
     * @return
     */
    RoleInfoVO selectRoleById(Long id);

    /**
     * 查找角色菜单
     *
     * @param id
     * @return
     */
    RoleMenuInfoVO selectMenuByRoleId(Long id);

    /**
     * 新增角色
     *
     * @param roleEntity
     * @return
     */
    void insertRole(RoleEntity roleEntity);

    /**
     * 修改角色
     *
     * @param roleEntity
     * @return
     */
    void updateRole(RoleEntity roleEntity);

    /**
     * 逻辑删除角色
     *
     * @param roleEntity
     * @return
     */
    void deleteRole(RoleEntity roleEntity);

    /**
     * 查询角色id
     *
     * @return
     */
    List<Long> findRoleId();

    /**
     * 根据id查询删除标志
     *
     * @param id
     * @return
     */
    Integer findIdMark(Long id);

}
